A Counter Example Guided Abstraction Refinement Framework for Compositional Verification of Concurrent C Programs

نویسنده

  • Sagar Chaki
چکیده

Automatic verification of software implementations is a major challenge in the domain of formal methods. The state of the art solutions to this problem suffer from one or more of the following drawbacks. First, most tools attempt to scale to large implementations. But since they use trace containment as a notion of conformance, they risk an exponential blowup in the size of the specification. This potentially prevents them from handling examples where the specifications are large and complex. Second, there is little support for compositional reasoning. Third, abstraction refinement is performed either manually or by considering one counter example at a time. Multiple counter examples are not used simultaneously even though this could lead to better refinement schemes. Finally, counter example guided abstraction refinement is not integrated smoothly with the handling of concurrency. In this proposal I present a methodology that attempts to overcome all of these hurdles. First, exponential blowup due to complex specifications is avoided by using weak simulation as a notion of conformance. Second, compositional analysis is allowed for naturally by letting individual procedures be verified against their respective specifications. Third, during each abstraction refinement step, multiple counter examples are used to obtain a minimal set of predicates that suffices to refine the abstraction. Last, a two-level abstraction refinement scheme achieves smooth integration of concurrency with counter example guided abstraction refinement. In conjunction, these techniques are expected to enable verification of concurrent C programs against complicated specifications in an automated manner.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Counterexample Guided Abstraction Refinement Framework for Verifying Concurrent C Programs

This dissertation presents a framework for verifying concurrent message-passing C programs in an automated manner. The methodology relies on several key ideas. First, programs are modeled as finite state machines whose states are labeled with data and whose transitions are labeled with events. We refer to such state machines as labeled Kripke structures (LKSs). Our state/event-based approach en...

متن کامل

Automated Compositional Abstraction Refinement for Concurrent C Programs: A Two-Level Approach

The state space explosion problem in model checking remains the chief obstacle to the practical verification of real-world distributed systems. We attempt to address this problem in the context of verifying concurrent (message-passing) C programs against safety specifications. More specifically, we present a fully automated compositional framework which combines two orthogonal abstraction techn...

متن کامل

Under consideration for publication in Formal Aspects of Computing Concurrent Software Verification with States, Events, and Deadlocks

We present a framework for model checking concurrent software systems which incorporates both states and events. Contrary to other state/event approaches, our work also integrates two powerful verification techniques, counterexample-guided abstraction refinement and compositional reasoning. Our specification language is a state/event extension of linear temporal logic, and allows us to express ...

متن کامل

Efficient Verification of Sequential and Concurrent C Programs

There has been considerable progress in the domain of software verification over the last few years. This advancement has been driven, to a large extent, by the emergence of powerful yet automated abstraction techniques such as predicate abstraction. However, the state-space explosion problem in model checking remains the chief obstacle to the practical verification of real-world distributed sy...

متن کامل

Counter-Example Guided Program Verification

This paper presents a novel counter-example guided abstraction refinement algorithm for the automatic verification of concurrent programs. Our algorithm proceeds in different steps. It first constructs an abstraction of the original program by slicing away a given subset of variables. Then, it uses an external model checker as a backend tool to analyze the correctness of the abstract program. I...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002